<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>

<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
    request.setCharacterEncoding("UTF-8");
%>

<!DOCTYPE HTML>
<html>
<head>
    <base href="<%=basePath%>">

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

    <title>支付</title>

    <!-- 加载js -->
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>
    <script>
        var signature = "";
        var indenttype = '<%=request.getParameter("indenttype")%>';
        $(function () {
            var requrl = location.href.split('#')[0];
            var url = "/except/indentcontroller/getSignature.do";
            $.ajax({
                url: url,
                dataType: "json",
                data: {
                    requrl: requrl,
                    timestamp: '<%=request.getParameter("timestamp")%>', // 必填，生成签名的时间戳
                    nonceStr: '<%=request.getParameter("nonce_str")%>', // 必填，生成签名的随机串
                },
                type: 'post',
                async: false,
                success: function (data) {
                    signature = data.data.signature;
                },
                error: function (data) {
                    alert("网络异常");
                }
            });

            wx.checkJsApi({
                jsApiList: ['checkJsApi', 'chooseWXPay'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
                success: function (res) {
                    // 以键值对的形式返回，可用的api值true，不可用为false
                    // 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
                }
            });


            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: 'wxcb6d3115c0924784', // 必填，公众号的唯一标识
                timestamp: '<%=request.getParameter("timestamp")%>', // 必填，生成签名的时间戳
                nonceStr: '<%=request.getParameter("nonce_str")%>', // 必填，生成签名的随机串
                signature: signature,// 必填，签名，见附录1
                jsApiList: ["chooseWXPay"] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
            });
            wx.ready(function () {

                wx.checkJsApi({

                    jsApiList: ['chooseWXPay'], // 需要检测的JS接口列表，所有JS接口列表见附录2,
                    success: function (res) {
                        //alert("检测接口:"+res.err_msg);
                    }
                });


                // config信息验证后会执行ready方法，所有接口调用都必须在config接口获得结果之后，config是一个客户端的异步操作，所以如果需要在页面加载时就调用相关接口，则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口，则可以直接调用，不需要放在ready函数中。
                wx.chooseWXPay({
                    timestamp: '<%=request.getParameter("timestamp")%>', // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
                    nonceStr: '<%=request.getParameter("nonce_str")%>', // 支付签名随机串，不长于 32 位
                    package: 'prepay_id=<%=request.getParameter("prepay_id")%>', // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=***）
                    signType: 'MD5', // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
                    paySign: '<%=request.getParameter("result_sign")%>', // 支付签名
                    success: function (res) {
                        // 支付成功后的回调函数
                        alert("支付成功");
                    },
                    cancel:function (res) {
                        location.href="/except/files/mine_page.jsp";
                    }

                });
            });
            wx.error(function (res) {
                alert(res);
            });
        });

    </script>
</head>
<body style="background-color: white;">
<input type="hidden" id="indenttype"/>
</body>
</html>